package cn.com.xxlibrary.util;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.ServletActionContext;

public class UtilTools {

	/**
	 * 读取系统设置值
	 * 
	 * @param key
	 *            键
	 * @return 值
	 */
	public static String readConfigValue(String key) {
		return PropTools.readValue("classpath:config.properties", key);
	}

	/**
	 * 修改系统设置值
	 * 
	 * @param key
	 *            键
	 * @param value
	 *            值
	 */
	public static void writeConfigValue(String key, String value) {
		PropTools.writeProperties("classpath:config.properties", key, value);
	}

	/**
	 * 判断对象是否为空或NULL
	 * 
	 * @param object
	 *            进行判断的对象
	 * @return true-不为空或NULL; false-对象为空或NULL
	 */
	public static boolean isNotNullorEmpty(Object object) {
		boolean flag = false;
		if (object != null && !"".equals(object.toString().trim())) {
			flag = true;
		}
		return flag;
	}

	/**
	 * 将字符串转换为SQL语句中的字符串
	 * 
	 * @param str
	 *            字符串, 如 abc
	 * @return 转换后的字符串, 如 'abc'
	 */
	public static String toSqlString(String str) {
		StringBuilder sqlStr = new StringBuilder().append("'").append(str)
				.append("'");
		return sqlStr.toString();
	}

	/**
	 * 将字符串转换为模糊查询SQL语句中的字符串
	 * 
	 * @param str
	 *            字符串, 如 abc
	 * @return 转换后的字符串, 如 'abc'
	 */
	public static String toSqlFuzzyString(String str) {
		StringBuilder sqlStr = new StringBuilder().append("'%").append(str)
				.append("%'");
		return sqlStr.toString();
	}

	/**
	 * 向客户端发回信息数据
	 * 
	 * @param content
	 *            要发送的信息
	 * @throws IOException
	 */
	public static void sendMsg(String content) throws IOException {
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setCharacterEncoding("UTF-8");
		response.getWriter().write(content);
	}

	/**
	 * 获取当前时间, 格式: yyyy-MM-dd HH:mm:ss
	 * 
	 * @return 当前时间
	 */
	public static String receiveNowTime() {
		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return df.format(new Date());
	}

}
